"""
data = {
'姓名': ['小花', '小李', '小王', '小明', "老刘", "张阿姨", "李叔"],
'年龄': [28, 35, 42, 30, 55, 60, 56],
'薪资': [12000, 15000, 10000, 14000, 6000, 5500, 6500],
'城市': ['北京', '上海', '广州', '深圳', "上海", "上海", "北京"],
'备注': ['学习Python', '喜欢编程', '热爱数据', '善于沟通', '跳舞', "打麻将", "下棋"]
}
1、将上面的数据写入到excel中,并命名sheet为信息登记
2、读取excel数据,打印年龄的平均值
3、读取excel数据,打印薪资最高的人的姓名和薪资
4、读取excel数据,查询每个城市有几个人
"""

import pandas as pd
data = {
    '姓名': ['小花', '小李', '小王', '小明', "老刘", "张阿姨", "李叔"],
    '年龄': [28, 35, 42, 30, 55, 60, 56],
    '薪资': [12000, 15000, 10000, 14000, 6000, 5500, 6500],
    '城市': ['北京', '上海', '广州', '深圳', "上海", "上海", "北京"],
    '备注': ['学习Python', '喜欢编程', '热爱数据', '善于沟通', '跳舞', "打麻将", "下棋"]
}
data=pd.DataFrame(data)
print(data)
#1、将上面的数据写入到excel中，并命名sheet为信息登记
with pd.ExcelWriter("/root/qianfeng/答辩/信息登记.xlsx") as writer:
    data.to_excel(writer)
print("数据已写入")
#2、读取excel数据，打印年龄的平均值

df = pd.read_excel("/root/qianfeng/答辩/信息登记.xlsx")
df_mean = df["年龄"].mean()
print(f"(1)平均年龄：",round(df_mean,3)) #round()函数用于四舍五入    3表示保留3位小数   
#3、打印薪资最高的人的姓名和薪资
#工资最高的人的姓名和年龄
# 找到薪资列中的最大值  
max_salary = df["薪资"].max()  
# 创建一个布尔索引，标记薪资等于最大薪资的行  
cond = df["薪资"] == max_salary  
# 使用.loc选择薪资等于最大薪资的行，并仅选择'姓名'和'薪资'这两列  
# 这样可以避免输出包含其他不必要列的数据  
max_salary_people = df.loc[cond, ["姓名", "薪资"]]   
# 打印薪资最高的人的姓名和薪资  
print(f"(2)薪资最高的人的姓名和薪资:\n{max_salary_people}") 
#4、查询每个城市有几个人
data = df["城市"].value_counts()  
print(f"(3)每个城市的人数分别为:\n",data)